package ai_auto

const AiCommandName = "ai_command"

// 条件逻辑设置：
// 添加与怪物的分组关联：用于根据怪物生成基本命令列表
//     提供基础分组，管理基本小怪的行为命令
//     特殊怪物分组，可以建立独特的命令行为
//     与关系筛选
// 添加命令配置：
//     用于限制命令列表的组成
//     是否可用于默认命令
//     必要条件：条件组上的依赖设定，可多选，与关系
//         或关系分析：必要条件目标是使该技能命令组有效，最终技能能被释放
//                    命令的执行肯定是设定到目标，敌人，友军等逻辑上，不存在或关系
// 命令绑定多个技能
//     用于实现命令和技能的关联
// Ai难度：
//     通过命令顺序无法显著提升
//     通过命令数量、扫描频次，扫描范围提升，在Aimode上进行下发
// Mode设定：
//     允许确定可用于的模式，多选，或关系
type AiConfig struct {
	IsDefault   bool  `json:"is_default"`
	Required    []int `json:"required"`
	RelationIds []int `json:"relation_ids"`
	Priority    int   `json:"priority"`
}

type AiCommand struct {
	Id         int      `json:"id" orm:"auto" sql:"INT"`
	Name       string   `json:"name" sql:"VARCHAR"`
	Command    byte     `json:"command" sql:"TINYINT"`
	RelationId int      `json:"relationId" sql:"INT"`
	Flag       byte     `json:"flag" sql:"TINYINT"`
	Targets    []int    `json:"targets" sql:"JSON"`
	Difficult  int      `json:"difficult" sql:"INT"`
	Config     AiConfig `json:"config" sql:"JSON"`
	Modes      []int    `json:"modes" sql:"JSON"`
}
